//package com.tiancheng.trade.authserver.controller.admin;
//
//import com.tiancheng.trade.authserver.model.reponse.SubjectAllRoleResult;
//import com.tiancheng.trade.authserver.service.IAuthRoleService;
//import com.tiancheng.trade.commom.core.data.Result;
//import jakarta.servlet.http.HttpServletRequest;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.web.bind.annotation.GetMapping;
//import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.bind.annotation.RestController;
//
//import javax.annotation.Resource;
//
//@RestController
//@RequestMapping("/role")
//@Slf4j
//public class RoleController {
//    @Resource
//    private IAuthRoleService service;
//    @Resource
//    private HttpServletRequest request;
//
//    @GetMapping("/getPageInfo")
//    @RequiresPermissions({"auth:role:query"})
//    public Result<PageInfo<RoleListDTO>> getPageInfo(RoleQuery param) {
//        return Result.success(this.service.getTengyunPageInfo(param));
//    }
//
//    /**
//     * oss获取分页信息
//     */
//    @GetMapping({"/ossGetPageInfo", "/oss/getPageInfo"})
//    @RequiresRoles({"auth:application"})
//    public Result<PageInfo<Map<String, Object>>> ossGetPageInfo(Integer p, Integer page_size, String app_id) {
//        return Result.success(this.service.getOssPageInfo(p, page_size, app_id));
//    }
//
//    @GetMapping("/getDetail")
//    @RequiresPermissions({"auth:role:edit"})
//    public Result<RoleDetailDTO> getDetail(@RequestParam String id) {
//        return Result.success(this.service.getDetail(id));
//    }
//
//    @PostMapping("/save")
//    @RequiresPermissions({"auth:role:add"})
//    public Result<String> save(@RequestBody RoleAddUpdateDTO param) {
//        return Result.success(this.service.saveByDTO(param));
//    }
//
//    /**
//     * oss保存或更新角色
//     */
//    @PostMapping({"/ossSave", "/oss/save"})
//    @RequiresRoles({"auth:application"})
//    public Result<Map<String, Object>> ossSave(@RequestParam Map<String, Object> param) {
//        Map<String, Object> bodyParam = RequestBodyParamUtils.getBodyParam(this.request, new TypeReference<Map<String, Object>>() {
//        });
//        if (bodyParam != null) {
//            param.putAll(bodyParam);
//        }
//        return Result.success(this.service.ossSave(param));
//    }
//
//    /**
//     * oss获取角色详情
//     */
//    @GetMapping({"/ossGetDetail", "/oss/getDetail"})
//    @RequiresRoles({"auth:application"})
//    public Result<Map<String, Object>> ossGetDetail(@RequestParam String id) {
//        return Result.success(this.service.ossGetDetail(id));
//    }
//
//    /**
//     * oss 添加用户角色
//     */
//    @PostMapping({"/ossAddUserRole", "/oss/addUserRole"})
//    @RequiresRoles({"auth:application"})
//    public Result<Map<String, Object>> ossAddUserRole(@RequestParam Map<String, Object> param) {
//        Map<String, Object> bodyParam = RequestBodyParamUtils.getBodyParam(this.request, new TypeReference<Map<String, Object>>() {
//        });
//        if (bodyParam != null) {
//            param.putAll(bodyParam);
//        }
//        return Result.success(this.service.ossAddUserRole(param));
//    }
//
//    /**
//     * oss 重置用户角色
//     */
//    @PostMapping("/oss/resetUserRole")
//    @RequiresRoles({"auth:application"})
//    public Result<Map<String, Object>> ossResetUserRole(@RequestParam Map<String, Object> param) {
//        Map<String, Object> bodyParam = RequestBodyParamUtils.getBodyParam(this.request, new TypeReference<Map<String, Object>>() {
//        });
//        if (bodyParam != null) {
//            param.putAll(bodyParam);
//        }
//        log.info("重置用户角色参数:{}", JacksonUtils.toJsonString(param));
//        return Result.success(this.service.ossResetUserRole(param));
//    }
//
//    /**
//     * oss 删除用户角色
//     */
//    @PostMapping({"/ossDeleteUserRole", "/oss/deleteUserRole"})
//    @RequiresRoles({"auth:application"})
//    public Result<Map<String, Object>> ossDeleteUserRole(@RequestParam Map<String, Object> param) {
//        Map<String, Object> bodyParam = RequestBodyParamUtils.getBodyParam(this.request, new TypeReference<Map<String, Object>>() {
//        });
//        if (bodyParam != null) {
//            param.putAll(bodyParam);
//        }
//        return Result.success(this.service.ossDeleteUserRole(param));
//    }
//
//    @PutMapping({"/globalUpdate", "replace"})
//    @RequiresPermissions({"auth:role:edit"})
//    public Result<Void> globalUpdate(@RequestBody RoleAddUpdateDTO param) {
//        this.service.globalUpdateByDTO(param);
//        return Result.success();
//    }
//
//    @DeleteMapping("/delete")
//    @RequiresPermissions({"auth:role:delete"})
//    public Result<Void> delete(@RequestParam String id) {
//        this.service.removeByPrimaryKey(id);
//        return Result.success();
//    }
//
//    /**
//     * oss删除角色
//     */
//    @GetMapping({"/ossDelete", "/oss/delete"})
//    @RequiresRoles({"auth:application"})
//    public Result<Map<String, String>> ossDelete(@RequestParam String id) {
//        this.service.removeByPrimaryKey(id);
//        Map<String, String> data = new HashMap<>();
//        data.put("success", "1");
//        return Result.success(data);
//    }
//
//    /**
//     * 在调用方应用程序下新建角色
//     */
//    @PostMapping({"/application/save", "/api/application/save"})
//    @RequiresRoles({"auth:application"})
//    public Result<String> applicationSave(@RequestBody RoleAddUpdateDTO param) {
//        return Result.success(this.service.applicationSaveByDTO(param));
//    }
//
//    /**
//     * 更新调用方应用下的角色
//     */
//    @PutMapping({"/application/update", "/api/application/update"})
//    @RequiresRoles({"auth:application"})
//    public Result<Void> applicationUpdate(@RequestBody RoleAddUpdateDTO param) {
//        this.service.applicationUpdateByDTO(param);
//        return Result.success();
//    }
//
//    /**
//     * 删除调用方应用下的角色
//     */
//    @DeleteMapping({"/application/delete", "/api/application/delete"})
//    @RequiresRoles({"auth:application"})
//    public Result<Void> applicationDelete(String id, String code) {
//        this.service.applicationDelete(id, code);
//        return Result.success();
//    }
//
//
//    @GetMapping("/getOptions")
//    @RequiresPermissions({"auth:role:query"})
//    public Result<List<RoleOptionDTO>> getOptions(RoleQuery param) {
//        return Result.success(this.service.getOptions(param));
//    }
//
//
//    /**
//     * 获取用户权限,该接口只能由应用程序调用,不能由用户调用
//     */
//    @GetMapping({"/getUserRoles", "/api/getUserRoles"})
//    @RequiresRoles({"auth:application"})
//    public Result<Set<String>> getUserRoles(@RequestParam String userId) {
//        return Result.success(this.service.getUserStringRolesByApplicationId(userId, SubjectUtils.getSessionCommonProfile().getId()));
//    }
//
//    /**
//     * 获取用户权限,该接口只能由应用程序调用,不能由用户调用,兼容oss老接口
//     */
//    @PostMapping({"/ossGetUserRoles", "/oss/getUserRoles"})
//    @RequiresRoles({"auth:application"})
//    public Result<Map<String, Object>> ossGetUserRoles(@RequestParam String uid, String app_id) {
//        if (StringUtils.isEmpty(app_id)) {
//            app_id = SubjectUtils.getSessionCommonProfile().getId();
//        }
//        return Result.success(this.service.ossGetUserStringRolesByApplicationId(uid, app_id));
//    }
//
//    /**
//     * 获取用户权限,该接口只能由应用程序调用,不能由用户调用,兼容oss老接口
//     */
//    @PostMapping({"/ossGetUserRolesName", "/oss/getUserRolesName"})
//    @RequiresRoles({"auth:application"})
//    public Result<Map<String, Object>> ossGetUserRolesName(@RequestParam String uid, String app_id) {
//        if (StringUtils.isEmpty(app_id)) {
//            app_id = SubjectUtils.getSessionCommonProfile().getId();
//        }
//        return Result.success(this.service.ossGetUserStringRolesNameByApplicationId(uid, app_id));
//    }
//
//    /**
//     * 获取访问者在当前系统下拥有的角色
//     */
//    @GetMapping("/getMyRoles")
//    @RequiresAuthentication
//    public Result<Set<String>> getMyRoles() {
//        return Result.success(this.service.getMyRoles());
//    }
//
//    /**
//     * 获取访问者在所有系统下拥有的角色
//     */
//    @GetMapping("/getMyAllRoles")
//    public Result<SubjectAllRoleResult> getMyAllRoles() {
//        return Result.success(this.service.getMyAllRoles());
//    }
//
//    /**
//     * 获取三方应用在调用方应用下拥有的角色,该接口只能由应用程序调用,不能由用户调用
//     */
//    @GetMapping({"/getApplicationRoles", "/api/getApplicationRoles"})
//    @RequiresRoles({"auth:application"})
//    public Result<Set<String>> getApplicationRoles(@RequestParam String applicationId) {
//        return Result.success(this.service.getApplicationStringRoles(SubjectUtils.getSessionCommonProfile().getId(), applicationId));
//    }
//
//    /**
//     * 添加应用拥有角色
//     */
//    @PutMapping({"/addApplicationRoles", "/api/addApplicationRoles"})
//    @RequiresRoles({"auth:application"})
//    public Result<Integer> addApplicationRoles(@RequestBody AddOrDeleteApplicationRolesParam param) {
//        return Result.success(this.service.addApplicationRoles(param));
//    }
//
//    /**
//     * 删除应用拥有角色
//     */
//    @PutMapping({"/deleteApplicationRoles", "/api/deleteApplicationRoles"})
//    @RequiresRoles({"auth:application"})
//    public Result<Integer> deleteApplicationRoles(@RequestBody AddOrDeleteApplicationRolesParam param) {
//        return Result.success(this.service.deleteApplicationRoles(param));
//    }
//
//    /**
//     * 添加用户拥有角色
//     */
//    @PutMapping({"/addUserRoles", "/api/addUserRoles"})
//    @RequiresRoles({"auth:application"})
//    public Result<Integer> addUserRoles(@RequestBody AddOrDeleteUserRolesParam param) {
//        return Result.success(this.service.addUserRoles(param));
//    }
//
//    /**
//     * 删除用户拥有角色
//     */
//    @PutMapping({"/deleteUserRoles", "/api/deleteUserRoles"})
//    @RequiresRoles({"auth:application"})
//    public Result<Integer> deleteUserRoles(@RequestBody AddOrDeleteUserRolesParam param) {
//        return Result.success(this.service.deleteUserRoles(param));
//    }
//
//    /**
//     * 获取用户角色信息
//     */
//    @GetMapping("/admin/getUserRoleInfo")
//    @RequiresPermissions({"auth:role:getUserRole"})
//    public Result<List<UserRoleInfo>> admin_getUserRoleInfo(String userId) {
//        return Result.success(this.service.getUserRoleInfo(userId));
//    }
//
//    /**
//     * 获取应用角色信息
//     */
//    @GetMapping("/admin/getApplicationRoleInfo")
//    @RequiresPermissions({"auth:role:getApplicationRole"})
//    public Result<List<UserRoleInfo>> admin_getApplicationRoleInfo(String applicationId) {
//        return Result.success(this.service.getApplicationRoleInfo(applicationId));
//    }
//
//    /**
//     * 替换用户角色信息
//     */
//    @PostMapping("/admin/replaceUserRole")
//    @RequiresPermissions({"auth:role:updateUserRole"})
//    public Result<Void> admin_replaceUserRole(@RequestBody ReplaceUserRoleParam param) {
//        this.service.replaceUserRole(param);
//        return Result.success();
//    }
//
//    /**
//     * 替换应用角色信息
//     */
//    @PostMapping("/admin/replaceApplicationRole")
//    @RequiresPermissions({"auth:role:updateApplicationRole"})
//    public Result<Void> admin_replaceApplicationRole(@RequestBody ReplaceApplicationRoleParam param) {
//        this.service.replaceApplicationRole(param);
//        return Result.success();
//    }
//}
